﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EntitiesLayer;
using System.Data;
using System.Data.SqlClient;

namespace DAL.Repositorios
{
    public class RepoObjetivosReadOnly:IRepositoryConsultar<ObjetivoPE>
    {



        public IEnumerable<ObjetivoPE> GetAll()
        {
            IList<ObjetivoPE> objetivo = new List<ObjetivoPE>();

            SqlCommand cmd = new SqlCommand();
            DataSet ds = DBAccess.ExecuteSPWithDS(ref cmd, "PaListarObjetivo");

            foreach (DataRow dr in ds.Tables[0].Rows)
                objetivo.Add(crearObjetivo(dr));


            return objetivo.Count>0?objetivo:null;
        }

        public ObjetivoPE GetById(int id)
        {
            ObjetivoPE objetivo = null;

            SqlCommand cmd = new SqlCommand();
            cmd.Parameters.Add(new SqlParameter("@Id", id));
            DataSet ds = DBAccess.ExecuteSPWithDS(ref cmd, "PaConsultarObjetivoPorId");

            foreach (DataRow dr in ds.Tables[0].Rows)
                objetivo = crearObjetivo(dr);


            return objetivo;
        }

        private ObjetivoPE crearObjetivo(DataRow dr){
        /*
         [IdObjetivo]
			[Descripcion],
			[PorcIntensidad_Desde],
			[PorcIntensidad_Hasta],
			[Serie_Desde],
			[Serie_Hasta],
			[Repeticion_Desde],
			[Repeticion_Hasta]
         
         */


            return new ObjetivoPE(){
                
                Id = dr.Field<int>("IdObjetivo"), 
                Descripcion = dr.Field<string>("Descripcion"), 
                IntenciadaMin =dr.Field<decimal>("PorcIntensidad_Desde"),
                IntenciadaMax =dr.Field<decimal>("PorcIntensidad_Hasta"),
                RepeticionesMin= dr.Field<int>("Repeticion_Desde"),
                RepetionesMax= dr.Field<int>("Repeticion_Hasta"),
                SeriesMin= dr.Field<int>("Serie_Desde"),
                SeriesMax= dr.Field<int>("Serie_Hasta")
            };
        }
    }
}
